home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1999 August / SGI Freeware 1999 August.iso / dist / fw_xemacs.idb / usr / freeware / lib / xemacs-20.4 / lisp / w3 / url-vars.el.z / url-vars.el
Encoding:
Text File  |  1998-05-21  |  20.8 KB  |  598 lines

  1. ;;; url-vars.el --- Variables for Uniform Resource Locator tool
  2. ;; Author: wmperry
  3. ;; Created: 1997/10/17 14:08:06
  4. ;; Version: 1.76
  5. ;; Keywords: comm, data, processes, hypermedia
  6.  
  7. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  8. ;;; Copyright (c) 1993-1996 by William M. Perry <wmperry@cs.indiana.edu>
  9. ;;; Copyright (c) 1996, 1997 Free Software Foundation, Inc.
  10. ;;;
  11. ;;; This file is not part of GNU Emacs, but the same permissions apply.
  12. ;;;
  13. ;;; GNU Emacs is free software; you can redistribute it and/or modify
  14. ;;; it under the terms of the GNU General Public License as published by
  15. ;;; the Free Software Foundation; either version 2, or (at your option)
  16. ;;; any later version.
  17. ;;;
  18. ;;; GNU Emacs is distributed in the hope that it will be useful,
  19. ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
  20. ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  21. ;;; GNU General Public License for more details.
  22. ;;;
  23. ;;; You should have received a copy of the GNU General Public License
  24. ;;; along with GNU Emacs; see the file COPYING.  If not, write to the
  25. ;;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  26. ;;; Boston, MA 02111-1307, USA.
  27. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  28.  
  29. (eval-and-compile
  30.   (condition-case ()
  31.       (require 'custom)
  32.     (error nil))
  33.   (if (and (featurep 'custom) (fboundp 'custom-declare-variable))
  34.       nil ;; We've got what we needed
  35.     ;; We have the old custom-library, hack around it!
  36.     (defmacro defgroup (&rest args)
  37.       nil)
  38.     (defmacro defcustom (var value doc &rest args) 
  39.       (` (defvar (, var) (, value) (, doc))))))
  40.  
  41. (defconst url-version (let ((x "p4.0pre.14"))
  42.             (if (string-match "State: \\([^ \t\n]+\\)" x)
  43.                 (substring x (match-beginning 1) (match-end 1))
  44.               x))
  45.   "Version # of URL package.")
  46.  
  47. (defgroup url nil
  48.   "Uniform Resource Locator tool"
  49.   :group 'hypermedia)
  50.  
  51. (defgroup url-file nil
  52.   "URL storage"
  53.   :prefix "url-"
  54.   :group 'url)
  55.  
  56. (defgroup url-cache nil
  57.   "URL cache"
  58.   :prefix "url-"
  59.   :prefix "url-cache-"
  60.   :group 'url)
  61.  
  62. (defgroup url-history nil
  63.   "History variables in the URL package"
  64.   :prefix "url-"
  65.   :group 'url)
  66.  
  67. (defgroup url-cookie nil
  68.   "URL cookies"
  69.   :prefix "url-"
  70.   :prefix "url-cookie-"
  71.   :group 'url)
  72.  
  73. (defgroup url-mime nil
  74.   "MIME options of URL"
  75.   :prefix "url-"
  76.   :group 'url)
  77.  
  78. (defgroup url-hairy nil
  79.   "Hairy options of URL"
  80.   :prefix "url-"
  81.   :group 'url)
  82.  
  83.  
  84. (defvar url-current-can-be-cached t
  85.   "*Whether the current URL can be cached.")
  86.  
  87. (defvar url-current-object nil
  88.   "A parsed representation of the current url")
  89.  
  90. (defvar url-current-callback-func nil
  91.   "*The callback function for the current buffer.")
  92.  
  93. (defvar url-current-callback-data nil
  94.   "*The data to be passed to the callback function.  This should be a list,
  95. each item in the list will be an argument to the url-current-callback-func.")
  96.  
  97. (mapcar 'make-variable-buffer-local '(
  98.                       url-current-callback-data
  99.                       url-current-callback-func
  100.                       url-current-can-be-cached
  101.                       url-current-content-length
  102.                       url-current-isindex
  103.                       url-current-mime-encoding
  104.                       url-current-mime-headers
  105.                       url-current-mime-type
  106.                       url-current-mime-viewer
  107.                       url-current-object
  108.                       url-current-referer
  109.  
  110.                       ;; obsolete
  111.                       ;; url-current-file
  112.                       ;; url-current-port
  113.                       ;; url-current-server
  114.                       ;; url-current-type
  115.                       ;; url-current-user
  116.                       ))
  117.  
  118. (defvar url-cookie-storage nil         "Where cookies are stored.")
  119. (defvar url-cookie-secure-storage nil  "Where secure cookies are stored.")
  120. (defcustom url-cookie-file nil            "*Where cookies are stored on disk."
  121.   :type '(choice (const :tag "Default" :value nil) file)
  122.   :group 'url-file
  123.   :group 'url-cookie)
  124.  
  125. (defcustom url-default-retrieval-proc 'url-default-callback
  126.   "*The default action to take when an asynchronous retrieval completes."
  127.   :type 'function
  128.   :group 'url-hairy)
  129.  
  130. (defcustom url-honor-refresh-requests t
  131.   "*Whether to do automatic page reloads at the request of the document
  132. author or the server via the `Refresh' header in an HTTP/1.0 response.
  133. If nil, no refresh requests will be honored.
  134. If t, all refresh requests will be honored.
  135. If non-nil and not t, the user will be asked for each refresh request."
  136.   :type '(choice (const :tag "off" nil)
  137.          (const :tag "on" t)
  138.          (const :tag "ask" 'ask))
  139.   :group 'url-hairy)
  140.  
  141. (defcustom url-inhibit-mime-parsing nil
  142.   "Whether to parse out (and delete) the MIME headers from a message."
  143.   :type 'boolean
  144.   :group 'url-mime)
  145.  
  146. (defcustom url-automatic-caching nil
  147.   "*If non-nil, all documents will be automatically cached to the local
  148. disk."
  149.   :type 'boolean
  150.   :group 'url-cache)
  151.  
  152. (defcustom url-cache-expired
  153.   (function (lambda (t1 t2) (>= (- (car t2) (car t1)) 5)))
  154.   "*A function (`funcall'able) that takes two times as its arguments, and
  155. returns non-nil if the second time is 'too old' when compared to the first
  156. time."
  157.   :type 'function
  158.   :group 'url-cache)
  159.  
  160. (defvar url-bug-address "wmperry+w3@cs.indiana.edu"
  161.   "Where to send bug reports.")
  162.  
  163. (defcustom url-cookie-confirmation nil
  164.   "*If non-nil, confirmation by the user is required to accept HTTP cookies."
  165.   :type 'boolean
  166.   :group 'url-cookie)
  167.  
  168. (defcustom url-personal-mail-address nil
  169.   "*Your full email address.
  170. This is what is sent to HTTP/1.0 servers as the FROM field in an HTTP/1.0
  171. request."
  172.   :type '(choice (const nil) string)
  173.   :group 'url)
  174.  
  175. (defcustom url-directory-index-file "index.html"
  176.   "*The filename to look for when indexing a directory.
  177. If this file exists, and is readable, then it will be viewed instead of
  178. using `dired' to view the directory."
  179.   :type 'string
  180.   :group 'url-file)
  181.  
  182. (defcustom url-privacy-level '(email)
  183.   "*How private you want your requests to be.
  184. HTTP/1.0 has header fields for various information about the user, including
  185. operating system information, email addresses, the last page you visited, etc.
  186. This variable controls how much of this information is sent.
  187.  
  188. This should a symbol or a list.
  189. Valid values if a symbol are:
  190. none     -- Send all information
  191. low      -- Don't send the last location
  192. high     -- Don't send the email address or last location
  193. paranoid -- Don't send anything
  194.  
  195. If a list, this should be a list of symbols of what NOT to send.
  196. Valid symbols are:
  197. email    -- the email address
  198. os       -- the operating system info
  199. lastloc  -- the last location
  200. agent    -- Do not send the User-Agent string
  201. cookie   -- never accept HTTP cookies
  202.  
  203. Samples:
  204.  
  205.  (setq url-privacy-level 'high)
  206.  (setq url-privacy-level '(email lastloc))    ;; equivalent to 'high
  207.  (setq url-privacy-level '(os))
  208.  
  209. ::NOTE::
  210. This variable controls several other variables and is _NOT_ automatically
  211. updated.  Call the function `url-setup-privacy-info' after modifying this
  212. variable."
  213.   :type '(choice (const :tag "None (you believe in the basic goodness of humanity)"
  214.             :value none)
  215.          (const :tag "Low (do not reveal last location)"
  216.             :value low)
  217.          (const :tag "High (no email address or last location)"
  218.             :value high)
  219.          (const :tag "Paranoid (reveal nothing!)"
  220.             :value paranoid)
  221.          (checklist :tag "Custom"
  222.                 (const :tag "Email address" :value email)
  223.                 (const :tag "Operating system" :value os)
  224.                 (const :tag "Last location" :value lastloc)
  225.                 (const :tag "Browser identification" :value agent)
  226.                 (const :tag "No cookies" :value cookie)))
  227.   :group 'url)
  228.  
  229. (defvar url-history-list nil "List of urls visited this session.")
  230.  
  231. (defvar url-inhibit-uncompression nil "Do not do decompression if non-nil.")
  232.  
  233. (defcustom url-keep-history nil
  234.   "*Controls whether to keep a list of all the URLS being visited.
  235. If non-nil, url will keep track of all the URLS visited.
  236. If eq to `t', then the list is saved to disk at the end of each emacs
  237. session."
  238.   :type 'boolean
  239.   :group 'url-history)
  240.  
  241. (defcustom url-uncompressor-alist '((".z"  . "x-gzip")
  242.                     (".gz" . "x-gzip")
  243.                     (".uue" . "x-uuencoded")
  244.                     (".hqx" . "x-hqx")
  245.                     (".Z"  . "x-compress"))
  246.   "*An assoc list of file extensions and the appropriate
  247. content-transfer-encodings for each."
  248.   :type '(repeat (cons :format "%v"
  249.                (string :tag "Extension")
  250.                (string :tag "Encoding")))
  251.   :group 'url-mime)
  252.  
  253. (defcustom url-mail-command 'url-mail
  254.   "*This function will be called whenever url needs to send mail.
  255. It should enter a mail-mode-like buffer in the current window.
  256. The commands mail-to and mail-subject should still work in this
  257. buffer, and it should use mail-header-separator if possible."
  258.   :type 'function
  259.   :group 'url)
  260.  
  261. (defcustom url-proxy-services nil
  262.   "*An assoc list of access types and servers that gateway them.
  263. Looks like ((\"http\" . \"hostname:portnumber\") ....)  This is set up
  264. from the ACCESS_proxy environment variables in url-do-setup."
  265.   :type '(repeat (cons :format "%v"
  266.                (string :tag "Protocol")
  267.                (string :tag "Proxy")))
  268.   :group 'url)
  269.  
  270. (defcustom url-global-history-file nil
  271.   "*The global history file used by both Mosaic/X and the url package.
  272. This file contains a list of all the URLs you have visited.  This file
  273. is parsed at startup and used to provide URL completion."
  274.   :type '(choice (const :tag "Default" :value nil) file)
  275.   :group 'url-history)
  276.  
  277. (defcustom url-global-history-save-interval 3600
  278.   "*The number of seconds between automatic saves of the history list.
  279. Default is 1 hour.  Note that if you change this variable outside of
  280. the `customize' interface after `url-do-setup' has been run, you need
  281. to run the `url-setup-save-timer' function manually."
  282.   :set (function (lambda (var val)
  283.            (set-default var val)
  284.            (and (featurep 'url)
  285.             (fboundp 'url-setup-save-timer)
  286.             (url-setup-save-timer))))
  287.   :type 'integer
  288.   :group 'url-history)
  289.  
  290. (defvar url-global-history-timer nil)
  291.  
  292. (defcustom url-passwd-entry-func nil
  293.   "*This is a symbol indicating which function to call to read in a
  294. password.  It will be set up depending on whether you are running EFS
  295. or ange-ftp at startup if it is nil.  This function should accept the
  296. prompt string as its first argument, and the default value as its
  297. second argument."
  298.   :type '(choice (const :tag "Guess" :value nil)
  299.          (const :tag "Use Ange-FTP" :value ange-ftp-read-passwd)
  300.          (const :tag "Use EFS"      :value efs-read-passwd)
  301.          (const :tag "Use Password Package" :value read-passwd)
  302.          (function :tag "Other"))
  303.   :group 'url-hairy)
  304.  
  305. (defcustom url-gopher-labels
  306.   '(("0" . "(TXT)")
  307.     ("1" . "(DIR)")
  308.     ("2" . "(CSO)")
  309.     ("3" . "(ERR)")
  310.     ("4" . "(MAC)")
  311.     ("5" . "(PCB)")
  312.     ("6" . "(UUX)")
  313.     ("7" . "(???)")
  314.     ("8" . "(TEL)")
  315.     ("T" . "(TN3)")
  316.     ("9" . "(BIN)")
  317.     ("g" . "(GIF)")
  318.     ("I" . "(IMG)")
  319.     ("h" . "(WWW)")
  320.     ("s" . "(SND)"))
  321.   "*An assoc list of gopher types and how to describe them in the gopher
  322. menus.  These can be any string, but HTML/HTML+ entities should be
  323. used when necessary, or it could disrupt formatting of the document
  324. later on.  It is also a good idea to make sure all the strings are the
  325. same length after entity references are removed, on a strictly
  326. stylistic level."
  327.   :type '(repeat (cons (string :tag "Type")
  328.                (string :tag "Description")))
  329.   :group 'url-hairy)
  330.  
  331. (defcustom url-gopher-icons
  332.   '(
  333.     ("0" . "&text.document;")
  334.     ("1" . "&folder;")
  335.     ("2" . "&index;")
  336.     ("3" . "&stop;")
  337.     ("4" . "&binhex.document;")
  338.     ("5" . "&binhex.document;")
  339.     ("6" . "&uuencoded.document;")
  340.     ("7" . "&index;")
  341.     ("8" . "&telnet;")
  342.     ("T" . "&tn3270;")
  343.     ("9" . "&binary.document;")
  344.     ("g" . "ℑ")
  345.     ("I" . "ℑ")
  346.     ("s" . "&audio;"))
  347.   "*An assoc list of gopher types and the graphic entity references to
  348. show when possible."
  349.   :type '(repeat (cons (string :tag "Type")
  350.                (string :tag "Icon")))
  351.   :group 'url-hairy)
  352.  
  353. (defcustom url-standalone-mode nil "*Rely solely on the cache?"
  354.   :type 'boolean
  355.   :group 'url-cache)
  356. (defcustom url-multiple-p t
  357.   "*If non-nil, multiple queries are possible through ` *URL-<i>*' buffers"
  358.   :type 'boolean
  359.   :group 'url-hairy)
  360. (defvar url-default-working-buffer " *URL*" " The default buffer to do all of the processing in.")
  361. (defvar url-working-buffer url-default-working-buffer
  362.   "The buffer to do all of the processing in.
  363. It defaults to `url-default-working-buffer' and is bound to *URL-<i>*
  364. buffers when used for multiple requests, cf. `url-multiple-p'")
  365. (defvar url-current-referer nil "Referer of this page.")
  366. (defvar url-current-content-length nil "Current content length.")
  367. (defvar url-current-isindex nil "Is the current document a searchable index?")
  368. (defvar url-current-mime-encoding nil "MIME encoding of current document.")
  369. (defvar url-current-mime-headers nil "An alist of MIME headers.")
  370. (defvar url-current-mime-type nil "MIME type of current document.")
  371. (defvar url-current-mime-viewer nil "How to view the current MIME doc.")
  372. (defvar url-current-passwd-count 0 "How many times password has failed.")
  373. (defvar url-gopher-types "0123456789+gIThws:;<"
  374.   "A string containing character representations of all the gopher types.")
  375. (defvar url-mime-separator-chars (mapcar 'identity
  376.                     (concat "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
  377.                         "abcdefghijklmnopqrstuvwxyz"
  378.                         "0123456789'()+_,-./=?"))
  379.   "Characters allowable in a MIME multipart separator.")
  380.  
  381. (defcustom url-bad-port-list
  382.   '("25" "119" "19")
  383.   "*List of ports to warn the user about connecting to.  Defaults to just
  384. the mail, chargen, and NNTP ports so you cannot be tricked into sending
  385. fake mail or forging messages by a malicious HTML document."
  386.   :type '(repeat (string :tag "Port"))
  387.   :group 'url-hairy)
  388.  
  389. (defcustom url-be-anal-about-file-attributes nil
  390.   "*Whether to use HTTP/1.0 to figure out file attributes
  391. or just guess based on file extension, etc."
  392.   :type 'boolean
  393.   :group 'url-mime)
  394.  
  395. (defcustom url-be-asynchronous nil
  396.   "*Controls whether document retrievals over HTTP should be done in
  397. the background.  This allows you to keep working in other windows
  398. while large downloads occur."
  399.   :type 'boolean
  400.   :group 'url)
  401. (make-variable-buffer-local 'url-be-asynchronous)
  402.  
  403. (defvar url-request-data nil "Any data to send with the next request.")
  404.  
  405. (defvar url-request-extra-headers nil
  406.   "A list of extra headers to send with the next request.  Should be
  407. an assoc list of headers/contents.")
  408.  
  409. (defvar url-request-method nil "The method to use for the next request.")
  410.  
  411. (defvar url-mime-encoding-string nil
  412.   "*String to send to the server in the Accept-encoding: field in HTTP/1.0
  413. requests.  This is created automatically from mm-content-transfer-encodings.")
  414.  
  415. (defcustom url-mime-language-string "*"
  416.   "*String to send to the server in the Accept-language: field in
  417. HTTP/1.0 requests."
  418.   :type 'string
  419.   :group 'url-mime
  420.   :group 'i18n)
  421.  
  422. (defvar url-mime-accept-string nil
  423.   "String to send to the server in the Accept: field in HTTP/1.0 requests.
  424. This is created automatically from url-mime-viewers, after the mailcap file
  425. has been parsed.")
  426.  
  427. (defvar url-history-changed-since-last-save nil
  428.   "Whether the history list has changed since the last save operation.")
  429.  
  430. (defvar url-proxy-basic-authentication nil
  431.   "Internal structure - do not modify!")
  432.   
  433. (defvar url-registered-protocols nil
  434.   "Internal structure - do not modify!  See `url-register-protocol'")
  435.  
  436. (defvar url-package-version "Unknown" "Version # of package using URL.")
  437.  
  438. (defvar url-package-name "Unknown" "Version # of package using URL.")
  439.  
  440. (defvar url-system-type nil "What type of system we are on.")
  441. (defvar url-os-type nil "What OS we are on.")
  442.  
  443. (defcustom url-max-password-attempts 5
  444.   "*Maximum number of times a password will be prompted for when a
  445. protected document is denied by the server."
  446.   :type 'integer
  447.   :group 'url)
  448.  
  449. (defcustom url-temporary-directory (or (getenv "TMPDIR") "/tmp")
  450.   "*Where temporary files go."
  451.   :type 'directory
  452.   :group 'url-file)
  453.  
  454. (defcustom url-show-status t
  455.   "*Whether to show a running total of bytes transferred.  Can cause a
  456. large hit if using a remote X display over a slow link, or a terminal
  457. with a slow modem."
  458.   :type 'boolean
  459.   :group 'url)
  460.  
  461. (defvar url-using-proxy nil
  462.   "Either nil or the fully qualified proxy URL in use, e.g.
  463. http://www.domain.com/")
  464.  
  465. (defcustom url-news-server nil
  466.   "*The default news server to get newsgroups/articles from if no server
  467. is specified in the URL.  Defaults to the environment variable NNTPSERVER
  468. or \"news\" if NNTPSERVER is undefined."
  469.   :type '(choice (const :tag "None" :value nil) string)
  470.   :group 'url)
  471.  
  472. (defcustom url-gopher-to-mime
  473.   '((?0 . "text/plain")            ; It's a file
  474.     (?1 . "www/gopher")            ; Gopher directory
  475.     (?2 . "www/gopher-cso-search")    ; CSO search
  476.     (?3 . "text/plain")            ; Error
  477.     (?4 . "application/mac-binhex40")    ; Binhexed macintosh file
  478.     (?5 . "application/pc-binhex40")    ; DOS binary archive of some sort
  479.     (?6 . "archive/x-uuencode")        ; Unix uuencoded file
  480.     (?7 . "www/gopher-search")        ; Gopher search!
  481.     (?9 . "application/octet-stream")    ; Binary file!
  482.     (?g . "image/gif")            ; Gif file
  483.     (?I . "image/gif")            ; Some sort of image
  484.     (?h . "text/html")            ; HTML source
  485.     (?s . "audio/basic")        ; Sound file
  486.     )
  487.   "*An assoc list of gopher types and their corresponding MIME types."
  488.   :type '(repeat (cons sexp string))
  489.   :group 'url-hairy)
  490.  
  491. (defcustom url-use-hypertext-gopher t
  492.   "*Controls how gopher documents are retrieved.
  493. If non-nil, the gopher pages will be converted into HTML and parsed
  494. just like any other page.  If nil, the requests will be passed off to
  495. the gopher.el package by Scott Snyder.  Using the gopher.el package
  496. will lose the gopher+ support, and inlined searching."
  497.   :type 'boolean
  498.   :group 'url)
  499.  
  500. (defvar url-global-history-hash-table nil
  501.   "Hash table for global history completion.")
  502.  
  503. (defvar url-nonrelative-link
  504.   "^\\([-a-zA-Z0-9+.]+:\\)"
  505.   "A regular expression that will match an absolute URL.")
  506.  
  507. (defcustom url-confirmation-func 'y-or-n-p
  508.   "*What function to use for asking yes or no functions.  Possible
  509. values are 'yes-or-no-p or 'y-or-n-p, or any function that takes a
  510. single argument (the prompt), and returns t only if a positive answer
  511. is gotten."
  512.   :type '(choice (const :tag "Short (y or n)" :value y-or-n-p)
  513.          (const :tag "Long (yes or no)" :value yes-or-no-p)
  514.          (function :tag "Other"))
  515.   :group 'url-hairy)
  516.  
  517. (defcustom url-gateway-method 'native
  518.   "*The type of gateway support to use.
  519. Should be a symbol specifying how we are to get a connection off of the
  520. local machine.
  521.  
  522. Currently supported methods:
  523. 'telnet       :: Run telnet in a subprocess to connect
  524. 'rlogin         :: Rlogin to another machine to connect
  525. 'socks          :: Connects through a socks server
  526. 'ssl            :: Connection should be made with SSL
  527. 'tcp            :: Use the excellent tcp.el package from gnus.
  528.                    This simply does a (require 'tcp), then sets
  529.                    url-gateway-method to be 'native.
  530. 'native        :: Use the native open-network-stream in emacs
  531. "
  532.   :type '(radio (const :tag "Telnet to gateway host" :value telnet)
  533.         (const :tag "Rlogin to gateway host" :value rlogin)
  534.         (const :tag "Use SOCKS proxy" :value socks)
  535.         (const :tag "Use SSL for all connections" :value ssl)
  536.         (const :tag "Use the `tcp' package" :value tcp)
  537.         (const :tag "Direct connection" :value native))
  538.   :group 'url-hairy)
  539.  
  540. (defvar url-running-xemacs (string-match "XEmacs" emacs-version)
  541.   "*Got XEmacs?")
  542.  
  543. (defvar url-default-ports '(("http"   .  "80")
  544.                 ("gopher" .  "70")
  545.                 ("telnet" .  "23")
  546.                 ("news"   . "119")
  547.                 ("https"  . "443")
  548.                 ("shttp"  .  "80"))
  549.   "An assoc list of protocols and default port #s")
  550.  
  551. (defvar url-setup-done nil "*Has setup configuration been done?")
  552.  
  553. (defvar url-source nil
  554.   "*Whether to force a sourcing of the next buffer.  This forces local
  555. files to be read into a buffer, no matter what.  Gets around the
  556. optimization that if you are passing it to a viewer, just make a
  557. symbolic link, which looses if you want the source for inlined
  558. images/etc.")
  559.  
  560. (defconst weekday-alist
  561.   '(("Sunday" . 0) ("Monday" . 1) ("Tuesday" . 2) ("Wednesday" . 3)
  562.     ("Thursday" . 4) ("Friday" . 5) ("Saturday" . 6)
  563.     ("Tues" . 2) ("Thurs" . 4)
  564.     ("Sun" . 0) ("Mon" . 1) ("Tue" . 2) ("Wed" . 3)
  565.     ("Thu" . 4) ("Fri" . 5) ("Sat" . 6)))
  566.  
  567. (defconst monthabbrev-alist
  568.   '(("Jan" . 1) ("Feb" . 2) ("Mar" . 3) ("Apr" . 4) ("May" . 5) ("Jun" . 6)
  569.     ("Jul" . 7) ("Aug" . 8) ("Sep" . 9) ("Oct" . 10) ("Nov" . 11) ("Dec" . 12))
  570.   )
  571.  
  572. (defvar url-lazy-message-time 0)
  573.  
  574. (defvar url-extensions-header "Security/Digest Security/SSL")
  575.  
  576. (defvar url-mailserver-syntax-table
  577.   (copy-syntax-table emacs-lisp-mode-syntax-table)
  578.   "*A syntax table for parsing the mailserver URL")
  579.  
  580. (modify-syntax-entry ?' "\"" url-mailserver-syntax-table)
  581. (modify-syntax-entry ?` "\"" url-mailserver-syntax-table)
  582. (modify-syntax-entry ?< "(>" url-mailserver-syntax-table)
  583. (modify-syntax-entry ?> ")<" url-mailserver-syntax-table)
  584. (modify-syntax-entry ?/ " " url-mailserver-syntax-table)
  585.  
  586. (defvar url-handle-no-scheme-hook nil
  587.   "*Hooks to be run until one can successfully transform an incomplete URL.
  588.  
  589. Each hook is called with a single argument URL and should return a tranformed
  590. url with a valid scheme (e.g., \"gnu\" --> \"http://www.gnu.org/\"), or nil
  591. otherwise.")
  592.  
  593. ;;; Make OS/2 happy - yeeks
  594. (defvar    tcp-binary-process-input-services nil
  595.   "*Make OS/2 happy with our CRLF pairs...")
  596.  
  597. (provide 'url-vars)
  598.